iT邦幫忙

2023 iThome 鐵人賽

DAY 6
1

dbt package類型

在實際操作之前,先講解一下會使用到的dbt package類型:

  • 資料模型構建巨集 ( Data Modelling Macros):
    因為DV資料模型都是模板化的輪輻模型,絕大部分的編譯(Compiled)SQL都可以通過巨集實現(有些package號稱達到95% 🤨),而你也只需要考慮建模概念和package配置。
  • 資料品質評估、管理(Data Quality Testing / Management):
    由於DV資料模型有很多模型上的規定性限制(Perscriptive Restrictions),所以維持資料品質就變得特別重要。譬如說,如果某個重要的唯一鍵被重複了的話,因為DV模型實際查詢會用上比一般多的JOIN,扇出(fan out)的問題也為更嚴重。
  • 其他:另外一些推薦使用的dbt package

資料模型構建巨集

這裡有兩個主要選項:

  • AutomateDV:基本上是用dbt建構DV的預設選項,也是最受歡迎的DV開源軟件包。而從開源專案的角度來看,由於受歡迎所以也比較容易找到參考資料,也有自己的入門模板。
  • datavault4dbt:相對新晉的DV專門軟件包。雖然說大部分的功能與AutomateDV類似,但支持比較多原資料層的種類、選項。
    一般來說,我會建議使用AutomateDV,但如果對DV設計比較熟悉、或需要可以支持CDC或瞬態資料源(transient data sources)的原始資料層的話,可以考慮datavault4dbt

資料品質評估、管理

dbt內建的資料品質測試功能其實已經很強了,其他比較通用的資料品質測試package也有很多厲害的功能。這次鐵人賽我會再寫一系列關於dbt資料平治測試package的系列文,這邊就先先淺談一下DV專用的一些測試package:

  • AutomateDV + datavault4dbt:這兩個選項都有一些內建的單元測試(unit test),如果參考鍵(reference keys)好好設定的話會對資料模型完整性有很大的幫助。
  • dq-vault:這個是專門為了DV資料測試設計的package,也包含了主要規定性限制的各種測試(資料複製、核對、參考完整性)。也事先聲明一下,這是我們公司內部開發後開源出去的package (ノ≧ڡ≦)

其他

以下是一些其他非關鍵但會推薦使用的一些package:

  • DV項目模板:
    如果是第一次實踐DV的話,最好是先從入門模板開始客製化。這一類模板會預先幫你設置好一些最佳實踐選項。這裡除了AutomateDV的入門模板外,也推薦我們公司和dbt官方合作開發的DV模板
  • dbterd:
    專門為了視覺化實體關係圖(Entity Relation Diagram)的package。由於DV設計上會比較複雜,而如果自己手動話的話也會很痛苦。這個軟件會使用dbt裡的關係元數據(Relationship Metadata)自動生成實體關係圖。

鏈接

AutomateDV: Githubdbt package hub
datavault4dbt:Githubdbt package hub
dq_vault:Githubdbt package hub
dbterd:Github
dbt-data-vault-template:Github


上一篇
用dbt建構Data Vault 2.0:4 使用dbt技術考量
下一篇
用dbt建構Data Vault 2.0:6 快速設定指南 Part 1
系列文
實用Modern Data Stack:資料架構案例分析與分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言